package xyz.bali16.module.article.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import xyz.bali16.application.core.model.UserVo;

import java.util.List;

/**
 * @author bali2 on 11/3/2023.
 * @version 1.0
 */
@Data
public class Article {
    /**
     * 帖子id
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 标题
     */
    private String title;
    /**
     * 正文
     */
    private String content;

    /**
     * 文章路径
     */
    private String url;

    /**
     * 略缩图
     */
    private String thumbnail;
    /**
     * 文章状态 0已发布 1草稿 2回收站
     */
    private Integer status;

    /**
     * 是否私有 0公开 1私有
     */
    private Integer hidden;
    /**
     * 发布人Id
     */
    private String userId;
    /**
     * 访问量
     */
    private Integer views;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private String gmtCreated;
    /**
     * 修改用户Id
     */
    @TableField(fill = FieldFill.INSERT)
    private String modifiedUserId;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT)
    private String gmtModified;
    /**
     * 文件MD5 （可上传多个文件）
     */
    @TableField(exist = false)
    private List<String> fileMD5;

    /**
     * 评论数量
     */
    private Integer commentCount;


    /**
     * 文章标签
     */
    @TableField(exist = false)
    private List<Tag> tags;
    /**
     * 文章种类
     */
    @TableField(exist = false)
    private Category category;
    /**
     * 点赞数量
     */
    @TableField(exist = false)
    private Long likeCount;
    /**
     * 点赞状态
     */
    @TableField(exist = false)
    private Integer likeStatus;

    @TableField(exist = false)
    private UserVo author;
}
